package main

import "fmt"

//每一个源文件都可以包含一个init函数，该函数会在main函数执行前，被Go运行框架调用，也就是说init会在main函数前调用

//1如果一个文件同时包含全局变量定义，init函数和main函数，则执行的流程全局变量定义->init函数->main函数
var age = test()

//为了看到全局变量是先被初始化的，我们这里先写函数
func test() int {
	fmt.Println("test()")
	return 90
}

//2init函数通常可以在init函数中完成初始化工作
//3main.go和utils.go都含有变量定义、init函数时，执行的流程是先执行调用的包里面的变量定义和init函数
func init() {
	fmt.Println("init...")
}
func main() {
	fmt.Println("main...age=", age)
}
